miad4.png

Laboratorio 2

Hito: desarrollo de una herramienta analítica usando paquetes especializados para análisis de datos en Python

Este laboratorio corresponde al 34% de la calificación total del curso y su entrega está planteada para el final de la semana 8. Su objetivo es poner en práctica las competencias adquiridas sobre el uso de los paquetes Pandas, Seaborn y Scikit Learn, entre otros, para hacer exploración, análisis descriptivo, y abordar preguntas de negocio para un caso basado en datos reales.

Especificamente, al desarrollar este laboratorio pondrás a prueba tus habilidades para:

  1. Identificar y abordar una pregunta de negocio a partir de un contexto dado.
  2. Cargar datos desde archivos utilizando métodos de Pandas.
  3. Explorar, manejar, limpiar y agregar DataFrames.
  4. Implementar análisis combinando métricas descriptivas, visualización, filtrado y agrupación.
  5. Implementar análisis basado en modelos estadísticos o de machine learning.
  6. Utilizar paquetes como ipywidgets o panel para agregar interactividad a los análisis de manera sencilla.

Te recomendamos leer por completo el enunciado del laboratorio antes de comenzar, de forma que tengas claro el propósito completo de la actividad, y puedas desarrollar tu solución apuntando a él en cada paso.

Contexto: Desigualdad y factores de éxito en Pruebas "Saber 11" (Colombia)

El ICFES es el Instituto Colombiano para el Fomento de la Educación Superior y está adscrito al Ministerio de Educación a nivel nacional. Como parte de sus funciones, el ICFES administra las pruebas Saber 11, las cuales evalúan a todos los estudiantes del país al final de su educación secundaria. El examen contiene preguntas que evalúan una variedad de áreas del conocimiento (p.ej., matemáticas, ciencias naturales), y se lleva a cabo dos veces al año, respondiendo a los diferentes calendarios académicos que siguen las instituciones educativas. Al momento de inscribirse a las pruebas, los estudiantes deben llenar un formulario que recoge información socio-demográfica y relacionada con la institución a la que pertenecen, con el fin de obtener evidencia respecto al desempeño de los estudiantes en la prueba según sus condiciones particulares.

saberpro.png

Al igual que otros países de la región, Colombia tiene grandes retos en términos de desigualdad, particularmente en el contexto de educación primaria y secundaria. Por esta razón, para el Estado colombiano es muy valioso el amplio registro de datos que el ICFES genera alrededor de las Pruebas Saber 11, pues con ellos se pueden generar análisis sobre la calidad de la educación en el país y eventualmente dar lugar a recomendaciones sobre políticas públicas. En particular, la problemática a abordar en este caso de estudio es desigualdad y factores de éxito en las pruebas Saber 11.

Los objetivos de este caso de estudio son:

Herramientas Computacionales para Análisis de Datos

Proyecto final

Nombre: Camilo Andrade Pérez

Código: 201920020

.

Tabla de Contenidos

.

SECCIÓN 1: Entendimiento del contenido de los archivos de datos

.

SECCIÓN 2: Identificación de características y relaciones en las variables

.

SECCIÓN 3: Abordaje de las preguntas de negocio planteadas

.

SECCIÓN 4: Desarrollo de una herramienta interactiva de análisis

.

1. Entender el contenido de los archivos de datos

Esta misión consiste en hacerse una idea general del contenido de los datos y seleccionar un segmento de ellos que tenga potencial para los análisis propuestos.

Pautas generales:

Preguntas guía:

Esta misión corresponde a trabajo interno del analista, por lo cual no tiene un entregable para el cliente. Como entregable, puedes generar un reporte básico sobre el contenido de los archivos de datos, ya sea a través de la impresión de mensajes, la presentación de tablas resumen, u otros.

1.1 IMPORTACIÓN DE PAQUETES Y LIBRERÍAS

1.2 CARGA Y CONSOLIDACIÓN DE DATOS

1.3 EXPLORACIÓN INICIAL DE LOS DATOS

1.4 DEPURACIÓN DEL DATAFRAME SOBRE EL QUE SE REALIZARÁN LOS ANÁLISIS Y EL MODELADO

Con estos resultados RETIRAREMOS el campo 'ESTU_TIPODOCUMENTO' del dataframe por no considerarse como variable predictora porque la mayoría de sus observaciones se concentran en un mismo valor: TI - Tarjeta de Identidad
Con estos resultados RETIRAREMOS el campo ESTU_NACIONALIDAD del dataframe por no considerarse como variable predictora porque la mayoría de sus observaciones se concentran en un mismo valor: Colombia
Con estos resultados MANTENDREMOS el campo ESTU_GENERO del dataframe por SÍ considerarse como variable predictora porque sus observaciones se distribuyen de manera más representativa.
Con estos resultados MANTENDREMOS el campo ESTU_FECHANACIMIENTO del dataframe por SÍ considerarse como variable predictora porque sus observaciones se distribuyen de manera más representativa.
Con estos resultados MANTENDREMOS el campo PERIODO del dataframe por SÍ considerarse como variable predictora porque sus observaciones se distribuyen de manera más representativa.
Vemos que el número máximo es uno (1), por lo que concluimos que todos los valores de este campo son diferentes, lo cual hace que este campo pueda ser un IDENTIFICADOR. Con estos resultados MANTENDREMOS el campo ESTU_CONSECUTIVO por su característica de ID.
Con estos resultados RETIRAREMOS el campo ESTU_ESTUDIANTE del dataframe por no considerarse como variable predictora porque todas sus observaciones tienen un mismo valor: Estudiante
Con estos resultados RETIRAREMOS el campo ESTU_PAIS_RESIDE del dataframe por no considerarse como variable predictora porque la mayoría de sus observaciones se concentran en un mismo valor: Colombia
Con estos resultados RETIRAREMOS el campo ESTU_TIENEETNIA del dataframe por no considerarse como variable predictora porque la mayoría de sus observaciones se concentran en un mismo valor: No
Con estos resultados MANTENDREMOS el campo ESTU_DEPTO_RESIDE del dataframe por SÍ considerarse como variable predictora porque sus observaciones se distribuyen en valores diferentes, a pesar de la concentración en VALLE
Con estos resultados MANTENDREMOS el campo ESTU_COD_RESIDE_DEPTO del dataframe por SÍ considerarse como variable predictora porque sus observaciones se distribuyen en valores diferentes, a pesar de la concentración en 76. Además tiene una característica importante en comparación al campo anterior (y con el cual guarda casi perfecta correlación) y es que es más robusto a las diferencias en digitación de los nombres, por ejemplo Bogota y Bogotá.
Con estos resultados MANTENDREMOS el campo ESTU_MCPIO_RESIDE del dataframe por SÍ considerarse como variable predictora porque sus observaciones se distribuyen en valores diferentes, a pesar de la concentración en CALI
Con estos resultados MANTENDREMOS el campo ESTU_COD_RESIDE_MCPIO del dataframe por SÍ considerarse como variable predictora porque sus observaciones se distribuyen en valores diferentes, a pesar de la concentración en 76001. Este campo al igual que en el campo anterior, ESTU_COD_RESIDE_DEPTO, es un código numérico asociado al municipio. Por esta razón MANTENDREMOS el campo ESTU_COD_RESIDE_MCPIO y RETIRAREMOS el campo ESTU_MCPIO_RESIDE:
Con estos resultados MANTENDREMOS el campo FAMI_ESTRATOVIVIENDA del dataframe por SÍ considerarse como variable predictora porque sus observaciones se distribuyen en diversos valores.
Con estos resultados MANTENDREMOS el campo FAMI_PERSONASHOGAR del dataframe por SÍ considerarse como variable predictora porque sus observaciones se distribuyen en diversos valores.
Con estos resultados MANTENDREMOS el campo FAMI_PERSONASHOGAR del dataframe por SÍ considerarse como variable predictora porque sus observaciones se distribuyen en diversos valores.
Con estos resultados MANTENDREMOS el campo FAMI_EDUCACIONPADRE del dataframe por SÍ considerarse como variable predictora porque sus observaciones se distribuyen en diversos valores.
Con estos resultados MANTENDREMOS el campo FAMI_EDUCACIONMADRE del dataframe por SÍ considerarse como variable predictora porque sus observaciones se distribuyen en diversos valores.
Con estos resultados MANTENDREMOS el campo FAMI_TRABAJOLABORPADRE del dataframe por SÍ considerarse como variable predictora porque sus observaciones se distribuyen en diversos valores. En total 13 categorías. Mas adelante reduciremos el texto de cada categoría de este campo.
Al igual que con el campo anterior, con estos resultados MANTENDREMOS el campo FAMI_TRABAJOLABORMADRE del dataframe por SÍ considerarse como variable predictora porque sus observaciones se distribuyen en diversos valores. En total 13 categorías. Mas adelante reduciremos el texto de cada categoría de este campo.
Con estos resultados RETIRAREMOS el campo FAMI_TIENEINTERNET del dataframe porque de los solo 2 posibles valoresque presenta: Si y No, el Si está presente en el 86% de las observaciones, lo cual muestra el alto desbalance de esta variable.
Con estos resultados RETIRAREMOS el campo FAMI_TIENESERVICIOTV del dataframe porque de los solo 2 posibles valores que presenta: Si y No, el Si está presente en el 85% de las observaciones, lo cual muestra el alto desbalance de esta variable.
Con estos resultados RETIRAREMOS el campo FAMI_TIENESERVICIOTV del dataframe porque de los solo 2 posibles valores que presenta: Si y No, el Si está presente en el 84% de las observaciones, lo cual muestra el alto desbalance de esta variable.
Con estos resultados RETIRAREMOS el campo FAMI_TIENESERVICIOTV del dataframe porque de los solo 2 posibles valores que presenta: Si y No, el Si está presente en el 87% de las observaciones, lo cual muestra el alto desbalance de esta variable.
Con estos resultados MANTENDREMOS el campo FAMI_TIENEHORNOMICROOGAS del dataframe porque de los solo 2 posibles valores que presenta: Si y No, el Si está presente en el 75% de las observaciones, lo cual, a pesar del desbalance de esta variable, se encuentra por debajo del umbral de 80%.
Con estos resultados MANTENDREMOS el campo FAMI_TIENEAUTOMOVIL del dataframe porque de los solo 2 posibles valores que presenta: Si y No, el Si está presente en el 64% de las observaciones, lo cual, a pesar del desbalance de esta variable, se encuentra por debajo del umbral de 80%.
Con estos resultados MANTENDREMOS el campo FAMI_TIENEMOTOCICLETA del dataframe porque de los solo 2 posibles valores que presenta: Si y No, el Si está presente en el 67% de las observaciones, lo cual, a pesar del desbalance de esta variable, se encuentra por debajo del umbral de 80%.
Con estos resultados MANTENDREMOS el campo FAMI_TIENECONSOLAVIDEOJUEGOS del dataframe porque sus posibles valores tienen presencia balanceada en las observaciones
Con estos resultados MANTENDREMOS el campo FAMI_NUMLIBROS del dataframe porque sus posibles valores tienen presencia balanceada en las observaciones
Con estos resultados MANTENDREMOS el campo FAMI_COMELECHEDERIVADOS del dataframe porque sus posibles valores tienen presencia distribuida en todas las observaciones
Con estos resultados MANTENDREMOS el campo FAMI_COMECARNEPESCADOHUEVO del dataframe porque sus posibles valores tienen presencia distribuida en todas las observaciones
Con estos resultados MANTENDREMOS el campo FAMI_COMECEREALFRUTOSLEGUMBRE del dataframe porque sus posibles valores tienen presencia distribuida en todas las observaciones
Con estos resultados MANTENDREMOS el campo FAMI_SITUACIONECONOMICA del dataframe porque sus posibles valores tienen presencia distribuida en todas las observaciones
Con estos resultados MANTENDREMOS el campo ESTU_DEDICACIONLECTURADIARIA del dataframe porque sus posibles valores tienen presencia distribuida en todas las observaciones
Con estos resultados MANTENDREMOS el campo ESTU_DEDICACIONINTERNET del dataframe porque sus posibles valores tienen presencia distribuida en todas las observaciones
Con estos resultados MANTENDREMOS el campo ESTU_HORASSEMANATRABAJA del dataframe porque sus posibles valores tienen presencia distribuida en todas las observaciones. Ademas esta variable tiene, intuitivamente, una relación directa con la variable objetivo dada su naturaleza.
Con estos resultados MANTENDREMOS el campo ESTU_TIPOREMUNERACION del dataframe porque sus posibles valores tienen presencia distribuida en todas las observaciones. Ademas esta variable tiene, intuitivamente, una relación directa con la variable objetivo dada su naturaleza.
Con estos resultados MANTENDREMOS el campo COLE_CODIGO_ICFES del dataframe porque sus valores tienen presencia distribuida en todas las observaciones
Con estos resultados MANTENDREMOS el campo COLE_COD_DANE_ESTABLECIMIENTO del dataframe porque sus valores tienen presencia distribuida en todas las observaciones
Con estos resultados RETIRAREMOS el campo COLE_NOMBRE_ESTABLECIMIENTO del dataframe porque sus valores tienen correlación con el campo COLE_CODIGO_ICFES
Con estos resultados MANTENDREMOS el campo COLE_GENERO del dataframe porque, a pesar de que posibles valores tienen gran cantidad de observaciones en MIXTO, esta variable tiene una relación directa con la variable objetivo
Con estos resultados MANTENDREMOS el campo COLE_NATURALEZA del dataframe porque, a pesar de que posibles valores tienen gran cantidad de observaciones en NO_OFICIAL, esta variable tiene una relación directa con la variable objetivo
Con estos resultados MANTENDREMOS el campo COLE_CALENDARIO del dataframe porque, a pesar de que posibles valores tienen gran cantidad de observaciones en B, esta variable tiene una relación directa con la variable objetivo
Con estos resultados MANTENDREMOS el campo COLE_CARACTER del dataframe porque, a pesar de que posibles valores tienen gran cantidad de observaciones en ACADEMICO, esta variable tiene una relación directa con la variable objetivo
Con estos resultados MANTENDREMOS el campo COLE_COD_DANE_SEDE del dataframe porque sus posibles valores se distribuyen en todas las observaciones
Con estos resultados MANTENDREMOS el campo COLE_COD_DANE_SEDE del dataframe porque sus posibles valores se distribuyen en todas las observaciones
Con estos resultados RETIRAREMOS el campo COLE_SEDE_PRINCIPAL porque sus posibles valores se concentran especialmente en S
Con estos resultados MANTENDREMOS el campo COLE_CARACTER del dataframe porque, a pesar de que posibles valores tienen gran cantidad de observaciones en URBANO, esta variable tiene una relación directa con la variable objetivo
Con estos resultados MANTENDREMOS el campo COLE_COD_DANE_SEDE del dataframe porque sus posibles valores se distribuyen en todas las observaciones
Con estos resultados MANTENDREMOS el campo COLE_COD_MCPIO_UBICACION del dataframe porque sus posibles valores se distribuyen en todas las observaciones
Con estos resultados RETIRAREMOS el campo COLE_MCPIO_UBICACION del dataframe porque guarda estrecha relación con el campo anterior COLE_COD_MCPIO_UBICACION
Con estos resultados MANTENDREMOS el campo COLE_COD_DEPTO_UBICACION del dataframe porque sus posibles valores se distribuyen en todas las observaciones
Con estos resultados RETIRAREMOS el campo COLE_DEPTO_UBICACION del dataframe porque guarda estrecha relación con el campo anterior COLE_COD_DEPTO_UBICACION
Con estos resultados RETIRAREMOS el campo ESTU_PRIVADO_LIBERTAD del dataframe porque de sus posibles valores el 99.9% se concentra en la opción N
Con estos resultados MANTENDREMOS el campo ESTU_COD_MCPIO_PRESENTACION del dataframe porque sus posibles valores se distribuyen en todas las observaciones
Con estos resultados RETIRAREMOS el campo ESTU_MCPIO_PRESENTACION del dataframe porque guarda estrecha relación con el campo anterior COLE_COD_DEPTO_UBICACION
Con estos resultados RETIRAREMOS el campo ESTU_DEPTO_PRESENTACION del dataframe porque guarda estrecha relación con el campo siguiente ESTU_COD_DEPTO_PRESENTACION
Con estos resultados MANTENDREMOS el campo ESTU_COD_DEPTO_PRESENTACION del dataframe porque sus posibles valores se distribuyen en todas las observaciones
Con estos resultados MANTENDREMOS el campo PUNT_LECTURA_CRITICA del dataframe porque sus posibles valores se distribuyen en todas las observaciones
Con estos resultados RETIRAREMOS el campo PERCENTIL_LECTURA_CRITICA del dataframe porque se trata de una variable estrechamente relacionada con la variable anterior PUNT_LECTURA_CRITICA
Con estos resultados MANTENDREMOS el campo PUNT_LECTURA_CRITICA del dataframe porque sus posibles valores se distribuyen en todas las observaciones
Con estos resultados MANTENDREMOS el campo PUNT_LECTURA_CRITICA del dataframe porque sus posibles valores se distribuyen en todas las observaciones
Con estos resultados RETIRAREMOS el campo PERCENTIL_MATEMATICAS del dataframe porque se trata de una variable estrechamente relacionada con la variable anterior PUNT_MATEMATICAS
Con estos resultados MANTENDREMOS el campo DESEMP_MATEMATICAS del dataframe porque sus posibles valores se distribuyen en todas las observaciones
Con estos resultados MANTENDREMOS el campo PUNT_C_NATURALES del dataframe porque sus posibles valores se distribuyen en todas las observaciones
Con estos resultados RETIRAREMOS el campo PERCENTIL_C_NATURALES del dataframe porque se trata de una variable estrechamente relacionada con la variable anterior PUNT_C_NATURALES
Con estos resultados MANTENDREMOS el campo DESEMP_C_NATURALES del dataframe porque sus posibles valores se distribuyen en todas las observaciones
Con estos resultados MANTENDREMOS el campo PUNT_SOCIALES_CIUDADANAS del dataframe porque sus posibles valores se distribuyen en todas las observaciones
Con estos resultados RETIRAREMOS el campo PERCENTIL_SOCIALES_CIUDADANAS del dataframe porque se trata de una variable estrechamente relacionada con la variable anterior PUNT_SOCIALES_CIUDADANAS
Con estos resultados MANTENDREMOS el campo DESEMP_SOCIALES_CIUDADANAS del dataframe porque sus posibles valores se distribuyen en todas las observaciones
Con estos resultados MANTENDREMOS el campo DESEMP_SOCIALES_CIUDADANAS del dataframe porque sus posibles valores se distribuyen en todas las observaciones
Con estos resultados RETIRAREMOS el campo PERCENTIL_INGLES del dataframe porque se trata de una variable estrechamente relacionada con la variable anterior PUNT_INGLES
Con estos resultados MANTENDREMOS el campo DESEMP_INGLES del dataframe porque sus posibles valores se distribuyen en todas las observaciones
Con estos resultados MANTENDREMOS el campo DESEMP_INGLES del dataframe porque sus posibles valores se distribuyen en todas las observaciones y especialmente por ser la VARIABLE OBJETIVO DE ANÁLISIS
Con estos resultados RETIRAREMOS el campo PERCENTIL_GLOBAL del dataframe porque se trata de una variable estrechamente relacionada con la variable anterior PUNT_GLOBAL
Con estos resultados RETIRAREMOS el campo ESTU_ESTADOINVESTIGACION del dataframe porque sus posibles valores se concentran en el valor PUBLICAR en nu porcentaje del 99.4%
Estas son las columnas que se mantienen despues del proceso de depuración realizado via verificación campo por campo de la distribución de sus valores y la eliminación de campos cuya cantidad de nulos es superior al 15%

1.5 Definición del sub-conjunto de variables que pueden ser relevantes para la problemática de interés

1.6 RESULTADOS DEL PROCESO DE ENTENDIMIENTO, EXPLORACIÓN Y DEPURACIÓN DE LOS DATOS

¿Qué dimensiones tienen los datos? R/. El dataset en proceso de depuración cuenta con 51 columnas y 52046 filas
¿Con cuántos años y periodos de evaluación se cuenta? R/. Tenemos datos de 2019, 2020 y 2021. Hemos tomado los periodos 1 por facilidad de procesamiento
¿Cuáles variables pueden ser de interés para la problemática planteada? R/. Por ahora hemos descartado las variables de tienen un porcentaje de valores nulos superior al 15% y hemos descartado tambien aquellas variables que tienen más del 80% de sus observaciones en un solo valor.
¿Qué porcentaje de datos faltantes o no válidos hay en las columnas de interés? R/. 26 de las 51 columnas tienen total completitud en sus observaciones. Con la depuración actual las 25 columnas restantes tienen al menos una (1) observacion faltante, pero ninguna columna supera el 15% de datos faltantes.
¿Podría eso afectar el análisis, y cómo abordarlo? R/. La afectación al análisis es importante cuando se tienen variables con muchos datos pérdidos o faltantes, al punto que algunos algoritmos no aceptan estas ausencias de datos. Existen diversas maneras de solucionar este problema de datos faltantes, desde técnicas de imputación de datos hasta eliminación de registros.

2. Identificar características y relaciones en las variables

Esta misión consiste en utilizar análisis descriptivos para explorar patrones o relaciones en las variables de interés para la problemática planteada.

Pautas generales:

Preguntas guía:

El entregable de esta misión es un reporte (p.ej., un conjunto de visualizaciones) que de cuenta de los comportamientos más interesantes que se observen en las variables de interés para el contexto propuesto. El propósito de esta exploración es generar hipótesis o preguntas que guíen análisis más profundos. En ese sentido, con base en lo aprendido en esta sección, identifique las tres preguntas analíticas que plantearía con mayor prioridad, teniendo en cuenta el contexto y los datos disponibles; estas preguntas NO se deben abordar en términos de código para el laboratorio (únicamente formularse).

2.1 Carga de paquetes y librerías

2.2 Carga de datos del punto 1

2.3 Gráficos para análisis exploratorio visual de los datos

2.3.1 Histogramas

2.3.2 Gráficos de dispersión para variables numéricas

El resultado de los gráficos de dispersión anteriores nos muestra una correlación más fuerte entre el Puntaje de Ciencias Naturales y el Puntaje Global que entre el Puntaje de Inglés y el Puntaje Global.
Nos muestra también que los puntajes de cada línea de conocimiento (Matemáticas, Lectura, Ciencias, Sociales, e Inglés) no tienen mayor correlación entre sí

2.3.3 Diagramas de caja - Boxplot

con este boxplot vemos que los resultados del Puntaje Global tienen un rango bastante amplio, desde 100 hasta 480 con algunos atípicos con Puntaje inferior a 100 y un atípico con puntaje superior a 480. El rango intercuartílico lo vemos aproximadamente entre 240 y 340.
Con estos resultados podemos ver que Ingles es el área donde mejor se desempeñan los estudiantes evaluados y Sociales Ciudadanas es donde peor lo hacen.

2.3.4 Gráficos de dispersión para variables categóricas

Este resultado muestra una interesante "correlación" entre las variables categóricas Número de Libros de la Familia y Desempeño en Lectura Crítica
En este gráfico de dispersión muestra una relación interesante entre el consumo de proteina animal y el desempeño en Matemáticas
En este gráfico de dispersión muestra una relación interesante entre el consumo de Lácteos y el desempeño en Ciencias Sociales
En este gráfico de dispersión no se evidencia claramente una relación entre el consumo de Verduras y el desempeño en Ciencias Naturales

2.3.5 Violinplots

Estos violinplots de Puntaje Global vs Género nos muestran una semejanza clara respecto a los resultados obtenidos por mujeres y hombres
Estos violinplots de Puntaje Global vs Periodo nos muestra que la variabilidad se ha reducido con el tiempo y los resultados han tenido una leve mejora. En 2019 hubo mayor distribución de los resultados obtenidos, mientras que en 2021 los resultados se concentraron más alrededor de la mediana.
Estos violinplots del Puntaje Global vs Estrato nos muestra una clara tendencia a los mejores resultados cuanto mayor sea el estrato del estudiante, con una característica interesante en relación a la categoría Sin Estrato, asociada a zonas rurales, la cual si bien presenta bastante variabilidad tambien presenta una mediana similar a la del estrato 3 y una concentración importante en la zona superior del Puntaje Global en comparación a los estratos 1, 2 y 3.
El resultado de este violinplot de Puntaje_Global vs la cantidad de Personas en el Hogar muestra mejores puntajes para los estudiantes cuyos hogares están compuestos por 3 a 6 personas. Los peores puntajes se ven para estudiantes cuyos hogares están compuestos por 9 o más personas.
Los resultados de estos violinplots de Puntaje Global vs la cantidad de Cuartos en el Hogar muestra un patrón interesante de peores puntajes en hogares donde hay un solo cuarto y, paradójicamente, donde hay 6 o más cuartos. Los puntajes para los demás grupos son relativamente similares.
Los resultados del violinplot vertical horizontal muestran claramente la relación entre el nivel educativo del padre y el puntaje del estudiante en el sentido: a mayor nivel educativo del padre, mayor puntaje global.
Al igual que con la variable anterior, los resultados del violinplot vertical horizontal muestran claramente la relación entre el nivel educativo de la madre y el puntaje del estudiante en el sentido: a mayor nivel educativo del madre, mayor puntaje global del estudiante.
El resultado de estos violinplot de Puntaje Global vs si hay o no Horno Microondas en el Hogar muestra una diferencia en la distribución de los resultados del Puntaje Global de los estudiantes.
El resultado de estos violinplot de Puntaje Global vs si la familia tiene Automovil muestra una diferencia en la distribución de los resultados del Puntaje Global de los estudiantes.
El resultado de estos violinplot de Puntaje Global vs si la familia tiene Motocicleta muestra una diferencia pequeña, pero interesante, en la distribución de los resultados del Puntaje Global de los estudiantes en la siguiente relación: los estudiantes de familias que NO TIENEN MOTOCICLETA tienen mejores resultados que los estudiantes cuya familia SÍ tienen motocicleta.
El resultado de estos violinplot de Puntaje Global vs si la familia tiene CONSOLA DE VIDEOJUEGOS muestra una diferencia pequeña en la distribución de los resultados del Puntaje Global de los estudiantes en la siguiente relación: los estudiantes de familias que NO TIENEN CONSOLA DE VIDEOJUEGOS tienen peores resultados que los estudiantes cuya familia SÍ tiene CONSOLA DE VIDEOJUEGOS.
Los resultados de estos violinplots de Puntaje Global vs el Número de Libros que tiene la Familia muestran una posible relación de la siguiente forma: a mayor cantidad de libros mayor probabilidad de tener un mejor resultado el estudiante.
Los resultados de estos violinplots de Puntaje Global vs el si en el hogar CONSUMEN DERIVADOS LACTEOS muestran una posible relación de la siguiente forma: a mayor frecuencia semanal de consumo de derivados de leche, mayor probabilidad de tener un mejor puntaje.
Los resultados de estos violinplots de Puntaje Global vs el si en el hogar COMEN CARNE PESCADO O HUEVO muestran una posible relación de la siguiente forma: a mayor frecuencia semanal de consumo de PROTEÍNA ANIMAL, mayor probabilidad de tener un mejor puntaje.
Los resultados de estos violinplots de Puntaje Global vs el si en el hogar COMEN CEREAL FRUTOS LEGUMBRES muestran una posible relación de la siguiente forma: a mayor frecuencia semanal de consumo de VERDURAS, mayor probabilidad de tener un mejor puntaje, aunque en menor proporción que en el caso de proteína animal.
Los resultados de estos violinplots de Puntaje Global vs el si en el hogar tienen una situación económica PEOR, IGUAL o MEJOR no muestran mayor diferencia en la distribución de puntaje global.

3. Abordar preguntas de negocio planteadas

Esta misión consiste en proponer, implementar y evaluar el desempeño modelo(s) que busque(n) explicar las relaciones entre factores socio-demográficos y desempeño en la prueba.

Pautas generales:

Preguntas guía:

El entregable de esta misión es un reporte sobre el desempeño de los modelos propuestos para abordar al menos una de las preguntas guía planteadas, acompañado de una conclusión sobre los resultados del modelo (si son válidos) en el contexto de la problemática planteada.

3.1 Eliminación de registros con campos nulos o vacíos

3.2 Definición de las variables objetivo de análisis y modelado

3.3 Reemplazo de valores en variables categóricas predictoras

3.4 Recategorización en tipo númerico de variables predictoras del punto anterior

3.5 Creación de nueva variable objetivo "ESTU_EN_RIESGO" como el cuartil inferior de la variable PUNT_GLOBAL

3.6 Definición de los subconjuntos de datos para el modelado de las variables objetivo

3.6.1 Dataset para modelar DESEMPEÑO EN LECTURA CRÍTICA

Confirmación de campos dataset para modelar DESEMPEÑO EN LECTURA CRÍTICA, tipos de variable y variable objetivo

3.6.2 Dataset para modelar DESEMPEÑO EN MATEMÁTICAS

Confirmación de campos dataset para modelar DESEMPEÑO EN MATEMÁTICAS, tipos de variable y variable objetivo

3.6.3 Dataset para modelar DESEMPEÑO EN CIENCIAS NATURALES

Confirmación de campos dataset para modelar DESEMPEÑO EN CIENCIAS NATURALES, tipos de variable y variable objetivo

3.6.4 Dataset para modelar DESEMPEÑO EN SOCIALES CIUDADANAS

Confirmación de campos dataset para modelar DESEMPEÑO EN SOCIALES CIUDADANAS, tipos de variable y variable objetivo

3.6.5 Dataset para modelar DESEMPEÑO EN INGLÉS

Confirmación de campos dataset para modelar DESEMPEÑO EN INGLES, tipos de variable y variable objetivo

3.6.6 Dataset para modelar ESTUDIANTE EN RIESGO

Confirmación de campos dataset para modelar ESTUDIANTE EN RIESGO, tipos de variable y variable objetivo

Resumiendo esta sección, hemos creado 6 datasets para modelar los siguientes DESEMPEÑOS escolares:

LECTURA CRÍTICA, MATEMÁTICAS, CIENCIAS NATURALES, SOCIALES CIUDADANAS, INGLÉS y ESTUDIANTE EN RIESGO

3.7 ENTRENAMIENTO DE MODELOS DE MACHINE LEARNING

En esta sección entrenaremos los modelos que esperamos que describan o expliquen la variabilidad de los fenómenos escolares seleccionados en términos de las variables predictoras escogidas y agrupadas en cada dataset creado en la sección anterior

3.7.1 Modelo para fenómeno escolar ESTUDIANTE EN RIESGO

Podemos concluir que este modelo de regresión logística para explicar el fenómeno escolar de Estudiante en Riesgo se ajusta de buena manera para las categorías 0 y 1 de Estudiante en Riesgo, con F1-Score de 90% y 66%, respectivamente.

3.7.2 Modelo para fenómeno escolar DESEMPEÑO DE LECTURA CRÍTICA

Podemos concluir que este modelo de regresión logística para explicar el fenómeno escolar de Desempeño en Lectura Crítica se ajusta de manera aceptable para las categorías 3 y 4 de Desempeño en Lectura Crítica, con F1-Score de 68% y 76%, respectivamente. Es posible que se requieran mayor representación de las categorías 1 y 2 para lograr un mejor ajuste.

3.7.3 Modelo para fenómeno escolar DESEMPEÑO MATEMÁTICAS

Podemos concluir que este modelo de regresión logística para explicar el fenómeno escolar de Desempeño en Matemáticas se ajusta de manera aceptable solo para la categoría 3 de Desempeño en Matemáticas, con F1-Score de 69%. Es posible que se requieran mayor representación de las categorías 1 y 2, y otras variables con mayor poder predictivo sobre este fenómeno para lograr un mejor ajuste. Este modelo requiere atención más profunda para buscar su mejora.

3.7.4 Modelo para fenómeno escolar DESEMPEÑO EN CIENCIAS NATURALES

Podemos concluir que este modelo de regresión logística para explicar el fenómeno escolar de Desempeño en Ciencias Naturales se ajusta de manera aceptable solo para la categoría 3 de Desempeño en Ciencias Naturales, con F1-Score de 67%, pero bastante pobre en categorías como la 4. Vemos que el modelo se desempeña peor en las categorías más subrepresentadas. Este modelo requiere atención más profunda para buscar su mejora.

3.7.5 Modelo para fenómeno escolar DESEMPEÑO EN SOCIALES CIUDADANAS

Podemos concluir que este modelo de regresión logística para explicar el fenómeno escolar de Desempeño en Sociales Ciudadanas se ajusta de manera aceptable solo para la categoría 3 de Desempeño en Sociales Ciudadanas, con F1-Score de 63%, pero bastante pobre en categorías como la 4. En este caso vemos que el modelo se desempeña peor en las categorías más subrepresentadas, sin embargo, la categoría 1 tiene menos observaciones, pero cuenta con un ajuste superior comparado con la categoría 4, sin ser bueno. Este modelo requiere atención más profunda para buscar su mejora.

3.7.6 Modelo para fenómeno escolar DESEMPEÑO EN INGLÉS

Podemos concluir que este modelo de regresión logística para explicar el fenómeno escolar de Desempeño en Inglés se ajusta de manera aceptable solo para las categorías A- y B+ de Desempeño en Inglés, con F1-Score de 62% y 69%, respectivamente, pero no se ajusta bien en las demás categorías A1, A2 y B1. Es posible que algunas de las variables no tenidas en cuenta para la construcción de este modelo tengan mayor poder predictivo. Este modelo requiere atención más profunda para buscar su mejora.

3.8 CONCLUSIONES GENERALES. En resumen, hemos entrenado 6 modelos de aprendizaje supervisado para explicar algunos fenómenos escolares relacionados con el desempeño de los estudiantes en las pruebas Saber 11. Estos modelos con sus respectivos resultados son:

.

ESTUDIANTE EN RIESGO: Exactitud 85%, F1-Score: 78% consideración: Bueno

DESEMPEÑO EN LECTURA CRÍTICA: Exactitud 68%, F1-Score: 25% consideración: Insuficiente

DESEMPEÑO EN MATEMÁTICAS: Exactitud 57%, F1-Score: 38% consideración: Insuficiente

DESEMPEÑO EN CIENCIAS NATURALES: Exactitud 54%, F1-Score: 37% consideración: Insuficiente

DESEMPEÑO EN SOCIALES CIUDADANAS: Exactitud 48%, F1-Score: 33% consideración: Insuficiente

DESEMPEÑO EN INGLÉS: Exactitud 48%, F1-Score: 42% consideración: Insuficiente

.

Los problemas de clasificación de múltiples clases vistos aquí requieren variables predictoras con mayor poder predictivo. Podemos considerar a los fenómenos de múltiples clases que hemos intentado modelar como modelos 'subespecificados' porque no estamos considerando variables que puedan explicar mejor su variabilidad

3.9 SEGMENTACIÓN DE GRUPOS ESTUDIANTILES POR DESEMPEÑO

4. Desarrollar una herramienta interactiva de análisis

Esta misión consiste en desarrollar una herramienta interactiva sencilla (que sea relevante en el contexto del problema) a partir de alguno de los análisis realizados en las secciones 2 o 3.

Pautas generales:

Pregunta guía:

El entregable de esta misión es la herramienta implementada, acompañada de las instrucciones necesarias para que un usuario la pueda utilizar.

La siguiente herramienta de visualización nos permitirá conocer como impactan algunas características sociodemográficas de los estudiantes en su clasificación en términos de desempeño escolar

4.1 Importación de paquetes y librerías

4.2 Creación de nuevo dataset para crear la visualización interactiva

4.3 Ejecución de pasos para la creación del gráfico interactivo

4.4 IMPACTO DE LA OCUPACIÓN Y EDUCACIÓN DE LOS PADRES Y EL CONSUMO DE PROTEINA ANIMAL EN EL DESEMPEÑO DE LOS ESTUDIANTES EN LAS PRUEBAS SABER EN LOS AÑOS 2019, 2020 Y 2021